package cn.fl.ass.service;

import java.util.List;

import cmm.user.facade.system.condition.SysUsrFunAuthRQueryCondition;
import cn.fl.ass.vo.AssDealSellLossVO;
import cn.fl.ass.vo.AssDealSellVO;
import cmm.mid.core.framework.page.Pager;
import cn.cmm.base.framework.constant.BaseExceptionConstant;
import cn.cmm.base.framework.exception.BaseException;
import fl.ass.facade.condition.AssDealSellLossQueryCondition;
import fl.ass.facade.condition.AssDealSellQueryCondition;
import fl.ass.facade.dto.AssDealSellDTO;

/**
 * @Description: 处置-变卖（事业部及优车） 客户端服务层接口
 * @Description: 持久层方法名称前缀：新增：insert* 删除：delete* 修改：update* 批量：batch* 查询对象：select* get* find* 查询集合：select*
 * @Description: 业务层方法名称前缀：新增：add* 删除：remove* 修改：modify* 查询对象：select* get* 批量：batch* 查询集合：search*
 */
public interface IAssDealSellService {
	
	/**
	 * 获取唯一对象
	 * @param id 主键
	 * @return 对象DTO
	 */
	public AssDealSellVO selectById(Long id)throws BaseException;
	
	/**
	 * 新增
	 * @param entity
	 * @return
	 */
    public Long add(AssDealSellVO entity) throws BaseException;

    /**
     * 删除
     * @param id
     * @return
     */
    public boolean removeById(Long id)throws BaseException;
    
    /**
     * 删除
     * @param ids
     * @return
     */
    public boolean removeByIds(List<Long> ids)throws BaseException;

    /**
     * 修改
     * @param entity
     * @return
     */
    public boolean modify(AssDealSellVO entity)throws BaseException;

    /**
     * 分页查询所有
     * @param page
     * @return
     */
    public Pager searchListPage(Pager page)throws BaseException;
    /**
     * 不分页查询
     * @param AssDealSellQueryCondition
     * @return
     */
	public List<AssDealSellVO> searchAssDealSellList(AssDealSellQueryCondition condition) throws BaseException;
	 /**
     * 分页查询所有变卖亏损信息
     * @param page
     * @return
     */
	public Pager AssDealSellLossByPage(Pager page)throws BaseException;
	 /**
     * 不分页查询
	 * @param SellId 
     * @param AssDealSellQueryCondition
     * @return
     */
	public List<AssDealSellLossVO> selectLossList(Long SellId)throws BaseException;
	/*
	 * 新增亏损信息
	 */
	public Long addassDealSellLoss(AssDealSellLossVO entity)throws BaseException;
	/*
	 * 修改亏损信息
	 */
	public Long modifyassDealSellLoss(AssDealSellLossVO entity)throws BaseException;

//	/**
//	 * 校验诉讼状态
//	 * 只有诉讼状态=空、未申请、已结案、诉讼申请不通过，其他的都不可以发起优车处置流程，并提示“XXX状态无法发起优车处置流程”
//	 * @param sueApplyId
//	 * @throws BaseException
//	 */
//	void checkLawsuitSts(Long sueApplyId) throws BaseException;
//
//	/**
//	 * 查询"优车处置（销售经理）"角色下的用户
//	 * @param condition
//	 * @return
//	 * @throws BaseException
//	 */
//	List<AssDealSellDTO> searchSellManagerList(SysUsrFunAuthRQueryCondition condition) throws BaseException;
}
